// Package initialize 包含项目的初始化逻辑，如路由、数据库等。
package initialize

import (
	"novel-go/router"
	"time"

	"github.com/gin-contrib/cors"
	"github.com/gin-gonic/gin"
)

// Routers 函数初始化并返回一个Gin引擎实例，配置了跨域支持和路由组。
func Routers() *gin.Engine {
	var Router = gin.Default()

	// 注册跨域中间件
	Router.Use(cors.New(cors.Config{
		AllowMethods:     []string{"*"},
		AllowHeaders:     []string{"*"},
		AllowOrigins:     []string{"*"},
		AllowCredentials: true,
		MaxAge:           time.Hour,
	}))

	// 获取路由组实例 并注册路由 通过 router路由组 调用 api 下的 方法
	// 所有在这个分组下的路由都会以 /api/v1.0 开头。
	serverRouter := router.RouterGroupApp.Server
	// 注册路由组
	PrivateGroup := Router.Group("api/v1.0")
	{
		// 调用 router包下的 初始化 方法 并传入路由组实例
		serverRouter.InitApiRouter(PrivateGroup)
	}
	return Router
}
